home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / pc / 3DTOSHI2.ZIP / mpg3d / include / g3dmatrl.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-04-21  |  2.0 KB  |  79 lines

  1.  
  2. // g3dmatrl.h
  3. //
  4. // Copyright (c) 1996 by Toshiaki Tsuji, all rights reserved.
  5.  
  6. #ifndef __G3DMATERIAL_H__
  7. #define __G3DMATERIAL_H__
  8.  
  9. #include "stdgfx.h"
  10. #include "g3ddef.h"
  11.  
  12. #define MATERIAL_SPECULAR     ((LONG)1<<0)
  13. #define MATERIAL_REFRACTIVE   ((LONG)1<<1)
  14. #define MATERIAL_TRANSPARENT  ((LONG)1<<2)
  15. #define MATERIAL_TRANSLUENT   ((LONG)1<<3)
  16.  
  17. #define TEXTURE_STATIC     1
  18. #define TEXTURE_FLIC       2
  19. #define TEXTURE_ANIM       3
  20.  
  21. class G3DMATERIAL
  22.   {
  23.     protected :  
  24.       CHAR Name[32];
  25.       LONG ID;
  26.       ANIMIMAGE *Texture;
  27.       
  28.     public :
  29.       LONG Ambient;
  30.       BOOLEAN Animated;
  31.       LONG Attributes;
  32.       LONG Transparency;
  33.       
  34.       G3DMATERIAL ();
  35.       virtual ~G3DMATERIAL ();       
  36.       
  37.       VOID SetTexture ( ANIMIMAGE *Image );
  38.       ANIMIMAGE* GetTexture () { return Texture; };
  39.       
  40.       VOID SetName ( STRING NewName );
  41.       VOID SetID ( LONG NewID );
  42.  
  43.       STRING GetName () { return Name; };
  44.       LONG GetID () { return ID; };
  45.   }; // End of G3DMATERIAL
  46.  
  47. class G3DMATERIALLIB
  48.   {
  49.     protected :
  50.       LONG NumMaterials;
  51.       G3DMATERIAL **Materials;
  52.       LONG NumTextures;
  53.       ANIMIMAGE **Textures;
  54.     
  55.     public :
  56.       G3DMATERIALLIB ();
  57.       virtual ~G3DMATERIALLIB ();
  58.       
  59.       VOID CreateMaterials ( LONG Num );
  60.       VOID DestroyMaterials ();
  61.       G3DMATERIAL* GetMaterial ( LONG Index ) { return Materials[Index]; };      
  62.  
  63.       LONG GetNumMaterials () { return NumMaterials; };
  64.       LONG GetNumTextures () { return NumTextures; };
  65.             
  66.       VOID CreateTextures ( LONG Num );
  67.       VOID DestroyTextures ();
  68.       ANIMIMAGE* GetTexture ( LONG Index ) { return Textures[Index]; };
  69.       BOOLEAN LoadTexture ( LONG Index, STRING FileName, BOOLEAN FileType,
  70.                             RGBPALETTE *Pal );
  71.             
  72.       G3DMATERIAL* FindMaterialByName ( STRING SearchName );
  73.       G3DMATERIAL* FindMaterialByID ( LONG SearchID );
  74.   }; // End of G3DMATERIALLIB
  75.  
  76. #endif
  77.  
  78.  
  79.